import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 故我
 * Date: 2023-03-14
 * Time: 22:18
 */
public class Test {
    public static int max_Two(int a, int b) {
        return a > b ? a : b;
    }

    public static int max_Three(int a, int b, int c) {
        return max_Two(max_Two(a, b), c);
    }

    public static void main7(String[] args) {
        /**
         * 创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
         *要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
         */
        int a = 10;
        int b = 20;
        int c = 30;

        System.out.println(max_Three(a, b, c));
    }

    public static void func(int[] arr) {
        int begin = 0;
        int end = arr.length - 1;
        while (begin < end) {
            //左边找偶数
            while (begin < end && arr[begin] % 2 == 1) {
                begin++;
            }
            //右边找奇数
            while (begin < end && arr[end] % 2 == 0) {
                end--;
            }
            ///交换
            int tmp = arr[begin];
            arr[begin] = arr[end];
            arr[end] = tmp;
        }
    }

    public static void main6(String[] args) {
        /**
         * 调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序。
         * 如数组：[1,2,3,4,5,6]
         * 调整后可能是：[1, 5, 3, 4, 2, 6]
         */
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8};
        func(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }

    public static int fac2(int n) {
        int ret = 0;
        for (int j = 1; j <= n; j++) {
            int sum = 1;
            for (int i = j; i >= 1; i--) {
                sum *= i;
            }
            ret += sum;
        }

        return ret;
    }

    public static void main5(String[] args) {
        // 求1！+2！+3！+4！+........+n!的和
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println(fac2(n));
    }

    public static int fic(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        int f1 = 1;
        int f2 = 1;
        int f3 = 0;
        for (int i = 2; i < n; i++) {
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }

    public static void main4(String[] args) {
        // 求斐波那契数列的第n项。(迭代实现)
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println(fic(n));
    }

    public static void main3(String[] args) {
        // 有一组数据，只有一个数字是出现一次，其他是两次，请找出这个数字。
        int[] arr = {1, 2, 3, 4, 5, 4, 3, 2, 1};
        int ret = arr[0];
        for (int i = 1; i < arr.length; i++) {
            ret ^= arr[i];
        }
        System.out.println(ret);
    }

    public static int sumAdd(int n) {
        if (n < 10) {
            return n;
        } else {
            return sumAdd(n / 10) + n % 10;
        }

    }

    public static void main2(String[] args) {
        // 1234  -> 1+2+3+4
        System.out.println(sumAdd(1234));
    }

    public static void print(int n) {
        if (n < 10) {
            System.out.print(n + " ");
        } else {
            print(n / 10);
            System.out.print(n % 10 + " ");
        }
    }

    public static void main1(String[] args) {
        // 1234  -》  1 2 3 4
        print(1234);
    }
}
